home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 6 / CU Amiga Magazine's Super CD-ROM 06 (1996)(EMAP Images)(GB)(Track 1 of 4)[!][issue 1997-01].iso / cucd / prog / mui / developer3.6 / autodocs / mui_window.doc < prev    next >
Text File  |  1996-08-20  |  34KB  |  1,190 lines

  1. TABLE OF CONTENTS
  2.  
  3. Window.mui/Window.mui
  4. Window.mui/MUIA_Window_Activate
  5. Window.mui/MUIA_Window_ActiveObject
  6. Window.mui/MUIA_Window_AltHeight
  7. Window.mui/MUIA_Window_AltLeftEdge
  8. Window.mui/MUIA_Window_AltTopEdge
  9. Window.mui/MUIA_Window_AltWidth
  10. Window.mui/MUIA_Window_AppWindow
  11. Window.mui/MUIA_Window_Backdrop
  12. Window.mui/MUIA_Window_Borderless
  13. Window.mui/MUIA_Window_CloseGadget
  14. Window.mui/MUIA_Window_CloseRequest
  15. Window.mui/MUIA_Window_DefaultObject
  16. Window.mui/MUIA_Window_DepthGadget
  17. Window.mui/MUIA_Window_DragBar
  18. Window.mui/MUIA_Window_FancyDrawing
  19. Window.mui/MUIA_Window_Height
  20. Window.mui/MUIA_Window_ID
  21. Window.mui/MUIA_Window_InputEvent
  22. Window.mui/MUIA_Window_IsSubWindow
  23. Window.mui/MUIA_Window_LeftEdge
  24. Window.mui/MUIA_Window_Menu
  25. Window.mui/MUIA_Window_MenuAction
  26. Window.mui/MUIA_Window_Menustrip
  27. Window.mui/MUIA_Window_MouseObject
  28. Window.mui/MUIA_Window_NeedsMouseObject
  29. Window.mui/MUIA_Window_NoMenus
  30. Window.mui/MUIA_Window_Open
  31. Window.mui/MUIA_Window_PublicScreen
  32. Window.mui/MUIA_Window_RefWindow
  33. Window.mui/MUIA_Window_RootObject
  34. Window.mui/MUIA_Window_Screen
  35. Window.mui/MUIA_Window_ScreenTitle
  36. Window.mui/MUIA_Window_SizeGadget
  37. Window.mui/MUIA_Window_SizeRight
  38. Window.mui/MUIA_Window_Sleep
  39. Window.mui/MUIA_Window_Title
  40. Window.mui/MUIA_Window_TopEdge
  41. Window.mui/MUIA_Window_UseBottomBorderScroller
  42. Window.mui/MUIA_Window_UseLeftBorderScroller
  43. Window.mui/MUIA_Window_UseRightBorderScroller
  44. Window.mui/MUIA_Window_Width
  45. Window.mui/MUIA_Window_Window
  46. Window.mui/MUIM_Window_AddEventHandler
  47. Window.mui/MUIM_Window_GetMenuCheck
  48. Window.mui/MUIM_Window_GetMenuState
  49. Window.mui/MUIM_Window_RemEventHandler
  50. Window.mui/MUIM_Window_ScreenToBack
  51. Window.mui/MUIM_Window_ScreenToFront
  52. Window.mui/MUIM_Window_SetCycleChain
  53. Window.mui/MUIM_Window_SetMenuCheck
  54. Window.mui/MUIM_Window_SetMenuState
  55. Window.mui/MUIM_Window_ToBack
  56. Window.mui/MUIM_Window_ToFront
  57. Window.mui/Window.mui
  58.  
  59.     Objects of window class are used to generate windows and
  60.     supply a place where MUI gadgets feel well. It handles
  61.     the complicated task of window resizing fully automatic,
  62.     you don't need to worry about that.
  63.  
  64.     Windows are children of an application, you cannot use
  65.     a window object without having a parent application
  66.     object. On the other side, the gadgets in a window
  67.     are children of the window, you cannot use MUI gadgets
  68.     without having a parent MUI window.
  69.  
  70.     Creating a window object does not mean to open it
  71.     instantly. This is done later by setting the window's
  72.     MUIA_Window_Open attribute. If your application has
  73.     several windows, the usual way is to create them all
  74.     at once at startup time and open/close it later
  75.     just by setting MUIA_Window_Open.
  76.  
  77.     There is no difference in talking to gadgets whether
  78.     their parent window is open or not. If you e.g. set
  79.     the contents of a string gadget in an open window,
  80.     the gadget will refresh immediately. If the window is
  81.     closed, the gadget just remembers its new setting
  82.     and displays it later.
  83. Window.mui/MUIA_Window_Activate
  84.  
  85.     NAME
  86.     MUIA_Window_Activate -- (V4 ) [ISG], BOOL
  87.  
  88.     FUNCTION
  89.     Setting this to TRUE will activate the window.
  90.     Setting this to FALSE has no effect.
  91.     The attribute will change whenever the user
  92.     activates/deactivates the window.
  93.  
  94.     Specifying FALSE at object creation time will make
  95.     the window open in an inactive state.
  96. Window.mui/MUIA_Window_ActiveObject
  97.  
  98.     NAME
  99.     MUIA_Window_ActiveObject -- (V4 ) [.SG], Object *
  100.  
  101.     SPECIAL INPUTS
  102.     MUIV_Window_ActiveObject_None
  103.     MUIV_Window_ActiveObject_Next
  104.     MUIV_Window_ActiveObject_Prev
  105.  
  106.     FUNCTION
  107.     Set the active object in a window as if the user
  108.     would have activated it with the tab key. The
  109.     object has to be in the cycle chain for this
  110.     command to work.
  111.  
  112.     EXAMPLE
  113.     set(window,MUIA_Window_ActiveObject,okaybutton);
  114.  
  115.     SEE ALSO
  116.     MUIM_Window_SetCycleChain
  117. Window.mui/MUIA_Window_AltHeight
  118.  
  119.     NAME
  120.     MUIA_Window_AltHeight -- (V4 ) [I.G], LONG
  121.  
  122.     SPECIAL INPUTS
  123.     MUIV_Window_AltHeight_MinMax(p)
  124.     MUIV_Window_AltHeight_Visible(p)
  125.     MUIV_Window_AltHeight_Screen(p)
  126.     MUIV_Window_AltHeight_Scaled
  127.  
  128.     FUNCTION
  129.     Specify the alternate (zoomed) height of a window.
  130.     If not present, the alternate height will be the
  131.     minimum height.
  132.  
  133.     SEE ALSO
  134.     MUIA_Window_Height, MUIA_Window_AltWidth
  135. Window.mui/MUIA_Window_AltLeftEdge
  136.  
  137.     NAME
  138.     MUIA_Window_AltLeftEdge -- (V4 ) [I.G], LONG
  139.  
  140.     SPECIAL INPUTS
  141.     MUIV_Window_AltLeftEdge_Centered
  142.     MUIV_Window_AltLeftEdge_Moused
  143.     MUIV_Window_AltLeftEdge_NoChange
  144.  
  145.     FUNCTION
  146.     Specify the alternate (zoomed) left position of
  147.     a window. This defaults to the standard left
  148.     position.
  149.  
  150.     SEE ALSO
  151.     MUIA_Window_LeftEdge, MUIA_Window_AltTopEdge
  152. Window.mui/MUIA_Window_AltTopEdge
  153.  
  154.     NAME
  155.     MUIA_Window_AltTopEdge -- (V4 ) [I.G], LONG
  156.  
  157.     SPECIAL INPUTS
  158.     MUIV_Window_AltTopEdge_Centered
  159.     MUIV_Window_AltTopEdge_Moused
  160.     MUIV_Window_AltTopEdge_Delta(p)
  161.     MUIV_Window_AltTopEdge_NoChange
  162.  
  163.     FUNCTION
  164.     Specify the alternate (zoomed) top position of
  165.     a window. This defaults to the standard top
  166.     position.
  167.  
  168.     SEE ALSO
  169.     MUIA_Window_TopEdge, MUIA_Window_AltLeftEdge
  170. Window.mui/MUIA_Window_AltWidth
  171.  
  172.     NAME
  173.     MUIA_Window_AltWidth -- (V4 ) [I.G], LONG
  174.  
  175.     SPECIAL INPUTS
  176.     MUIV_Window_AltWidth_MinMax(p)
  177.     MUIV_Window_AltWidth_Visible(p)
  178.     MUIV_Window_AltWidth_Screen(p)
  179.     MUIV_Window_AltWidth_Scaled
  180.  
  181.     FUNCTION
  182.     Specify the alternate (zoomed) width of a window.
  183.     If not present, the alternate width will be the
  184.     minimum width.
  185.  
  186.     SEE ALSO
  187.     MUIA_Window_Width, MUIA_Window_AltHeight
  188. Window.mui/MUIA_Window_AppWindow
  189.  
  190.     NAME
  191.     MUIA_Window_AppWindow -- (V5 ) [I..], BOOL
  192.  
  193.     FUNCTION
  194.     Setting this attribute to TRUE will make this window an
  195.     AppWindow, the user will be able to drop icons on it.
  196.     You can hear about these events by listening to the
  197.     MUIA_AppMessage attribute.
  198.  
  199.     SEE ALSO
  200.     MUIA_AppMessage, MUIA_Application_DropObject
  201. Window.mui/MUIA_Window_Backdrop
  202.  
  203.     NAME
  204.     MUIA_Window_Backdrop -- (V4 ) [I..], BOOL
  205.  
  206.     FUNCTION
  207.     Make the window a backdrop window.
  208. Window.mui/MUIA_Window_Borderless
  209.  
  210.     NAME
  211.     MUIA_Window_Borderless -- (V4 ) [I..], BOOL
  212.  
  213.     FUNCTION
  214.     Make the window borderless.
  215. Window.mui/MUIA_Window_CloseGadget
  216.  
  217.     NAME
  218.     MUIA_Window_CloseGadget -- (V4 ) [I..], BOOL
  219.  
  220.     FUNCTION
  221.     Set this to FALSE and your window will not
  222.     have a close gadget.
  223. Window.mui/MUIA_Window_CloseRequest
  224.  
  225.     NAME
  226.     MUIA_Window_CloseRequest -- (V4 ) [..G], BOOL
  227.  
  228.     FUNCTION
  229.     When the user hits a windows close gadget, the
  230.     window isn't closed immediately. Instead MUI only
  231.     sets this attribute to TRUE to allow your application
  232.     to react.
  233.  
  234.     Usually, you will setup a notification that automatically
  235.     closes the window when a close request appears, but you
  236.     could e.g. pop up a confirmation requester or do some
  237.     other things first.
  238.  
  239.     EXAMPLE
  240.     /* automagically close a window     */
  241.     /* when the close gadget is pressed */
  242.  
  243.     DoMethod(window,MUIM_Notify,
  244.        MUIA_Window_CloseRequest, TRUE,
  245.        window,3,MUIM_Set,MUIA_Window_Open,0);
  246.  
  247.     SEE ALSO
  248.     MUIA_Window_Open
  249. Window.mui/MUIA_Window_DefaultObject
  250.  
  251.     NAME
  252.     MUIA_Window_DefaultObject -- (V4 ) [ISG], Object *
  253.  
  254.     FUNCTION
  255.     The default object in a window receives keyboard input
  256.     as long as no other object is active. Good candidates
  257.     for default objects are e.g. lonely listviews. Making
  258.     such a listview the default object will allow the user
  259.     to control it immediately without the need of several
  260.     tab strokes for activation.
  261.  
  262.     SEE ALSO
  263.     MUIA_Window_ActiveObject
  264. Window.mui/MUIA_Window_DepthGadget
  265.  
  266.     NAME
  267.     MUIA_Window_DepthGadget -- (V4 ) [I..], BOOL
  268.  
  269.     FUNCTION
  270.     Enable or disable the depth gadget. Defaults to TRUE.
  271.     There is no good reason to use this tag.
  272. Window.mui/MUIA_Window_DragBar
  273.  
  274.     NAME
  275.     MUIA_Window_DragBar -- (V4 ) [I..], BOOL
  276.  
  277.     FUNCTION
  278.     Tell MUI to give your window a dragbar.
  279.  
  280.     Defaults to TRUE.
  281.  
  282.     There is no good reason to disable the dragbar!
  283. Window.mui/MUIA_Window_FancyDrawing
  284.  
  285.     NAME
  286.     MUIA_Window_FancyDrawing -- (V8 ) [ISG], BOOL
  287.  
  288.     FUNCTION
  289.     Usually, the only possible place to do some rendering is
  290.     during a MUIM_Draw method. However, if you have a class
  291.     that really requires very high graphical output speed
  292.     (e.g. a module players scope or a game class), you can
  293.     set MUIA_Window_FancyDrawing to TRUE.
  294.  
  295.     This allows your class to render anywhere between
  296.     MUIM_Show and MUIM_Hide, e.g. directly after an
  297.     attribute change with OM_SET or from a seperate
  298.     task.
  299.  
  300.     Note that your rastport etc. is only valid between
  301.     MUIM_Show and MUIM_Hide. Keep that in mind!
  302.  
  303.     When drawing from a seperate task, you have to clone
  304.     the RastPort and use the copy for your rendering!
  305.  
  306.     NOTES
  307.     Please use this attribute sparingly. It might prevent
  308.     MUI from doing nice things with your window, e.g.
  309.     building an automatic virtual group when the screen
  310.     is too small.
  311.  
  312.     MUIA_Window_FancyDrawing is really only necessary for
  313.     very few types of applications. You should use the
  314.     traditional way (MUIM_Draw and MUI_Redraw()) whenever
  315.     and wherever possible!
  316. Window.mui/MUIA_Window_Height
  317.  
  318.     NAME
  319.     MUIA_Window_Height -- (V4 ) [I.G], LONG
  320.  
  321.     SPECIAL INPUTS
  322.     MUIV_Window_Height_MinMax(p)
  323.     MUIV_Window_Height_Visible(p)
  324.     MUIV_Window_Height_Screen(p)
  325.     MUIV_Window_Height_Scaled
  326.     MUIV_Window_Height_Default
  327.  
  328.     FUNCTION
  329.     Specify the height of a window. Usually, you won't give
  330.     a pixel value here but instead use one of the following
  331.     magic macros:
  332.  
  333.     MUIV_Window_Height_Default:
  334.        calculated from objects default sizes.
  335.  
  336.     MUIV_Window_Height_MinMax(0..100):
  337.        somewhere between the minimum height (0) and the
  338.        maximum height (100) of your window.
  339.  
  340.     MUIV_Window_Height_Visible(1..100):
  341.        percentage of the screens visible height.
  342.  
  343.     MUIV_Window_Height_Screen(1..100):
  344.        percentage of the screens total height.
  345.  
  346.     MUIV_Window_Height_Scaled:
  347.        height will be adjusted so that
  348.        width : height == minimum width : minimum height.
  349.        Note that a windows width and height may not
  350.        both be scaled.
  351.  
  352.     Default for this tag is MUIV_Window_Height_Default.
  353.  
  354.     As long as your window has a window id (MUIA_Window_ID),
  355.     choosing a size is not that important. MUI will always
  356.     remember a windows last position and size and these
  357.     values will simply override your settings. Positioning
  358.     and sizing should be completely under user control,
  359.     a programmer doesn't need to worry about it.
  360.  
  361.     SEE ALSO
  362.     MUIA_Window_Width, MUIA_Window_ID
  363. Window.mui/MUIA_Window_ID
  364.  
  365.     NAME
  366.     MUIA_Window_ID -- (V4 ) [ISG], ULONG
  367.  
  368.     FUNCTIONS
  369.     For most of your windows, you should define a longword
  370.     as id value. Only a window with an id is able to
  371.     remember its size and position.
  372.  
  373.     Additionally, when you use an ascii id (e.g. 'MAIN'),
  374.     your window can be controlled from ARexx.
  375.  
  376.     Of course all windows of your application must have
  377.     unique ids.
  378.  
  379.     SEE ALSO
  380.     MUIA_Window_LeftEdge
  381. Window.mui/MUIA_Window_InputEvent
  382.  
  383.     NAME
  384.     MUIA_Window_InputEvent -- (V4 ) [..G], struct InputEvent *
  385.  
  386.     FUNCTION
  387.     This attribute gets set whenever your window receives
  388.     an input event. You can react on this by creating
  389.     a notification event containing a standard
  390.     commodities.library input description string.
  391.  
  392.     Due to performance reasons, only IDCMP_RAWKEY,
  393.     IDCMP_DISKINSERTED and IDCMP_DISKREMOVED events
  394.     are translated to a MUIA_Window_InputEvent
  395.     notification.
  396.  
  397.     Prior to MUI 3.0, the input description string needed
  398.     to remain valid as long as the notification lasts. MUI 3.0
  399.     converts the string to a struct IX immediately, speeding
  400.     up the comparision and eliminating the need to keep
  401.     the description strings allocated.
  402.  
  403.     NOTE
  404.     Notification on MUIA_Window_InputEvent is inefficient.
  405.     You should only use this notification for a few keyboard events
  406.     that are "general" to the window, e.g. F-Keys for certain
  407.     program actions. Keyboard control for single user interface
  408.     elements should be implemented by using subclasses and
  409.     requesting rawkey input events from there.
  410.  
  411.     EXAMPLE
  412.     DoMethod(window, MUIM_Notify,
  413.        MUIA_Window_InputEvent, "-repeat f1",
  414.        txobj, 3,
  415.        MUIM_Set, MUIA_Text_Contents, "f1 pressed/repeated");
  416. Window.mui/MUIA_Window_IsSubWindow
  417.  
  418.     NAME
  419.     MUIA_Window_IsSubWindow -- (V4 ) [ISG], BOOL
  420.  
  421.     FUNCTION
  422.     Windows with this flag set to TRUE dont get disposed
  423.     when the application object is disposed. You should set
  424.     this if your window belongs to an object placed in another
  425.     window (e.g. popup windows) and you want to dispose the
  426.     window object yourself during the OM_DISPOSE method
  427.     of the parent object.
  428. Window.mui/MUIA_Window_LeftEdge
  429.  
  430.     NAME
  431.     MUIA_Window_LeftEdge -- (V4 ) [I.G], LONG
  432.  
  433.     SPECIAL INPUTS
  434.     MUIV_Window_LeftEdge_Centered
  435.     MUIV_Window_LeftEdge_Moused
  436.  
  437.     FUNCTION
  438.     Specify the left edge of a window. Usually, you shouldn't
  439.     define a pixel value here but instead use one of the
  440.     following macros:
  441.  
  442.     MUIV_Window_LeftEdge_Centered:
  443.        window appears centered on the visible area of screen.
  444.  
  445.     MUIV_Window_LeftEdge_Moused
  446.        window appears centered under the mouse pointer.
  447.  
  448.     Default for this tag is MUIV_Window_LeftEdge_Centered.
  449.  
  450.     As long as your window has a window id (MUIA_Window_ID),
  451.     choosing a position is not that important. MUI will always
  452.     remember a windows last position and size and these
  453.     values will simply override your settings. Positioning
  454.     and sizing should be completely under user control,
  455.     a programmer doesn't need to worry about it.
  456.  
  457.     SEE ALSO
  458.     MUIA_Window_TopEdge, MUIA_Window_ID
  459. Window.mui/MUIA_Window_Menu
  460.  
  461.     NAME
  462.     MUIA_Window_Menu -- (V4 ) [I..], struct NewMenu * (OBSOLETE)
  463.  
  464.     SPECIAL INPUTS
  465.     MUIV_Window_Menu_NoMenu
  466.  
  467.     FUNCTION
  468.     Obsolete, use MUIA_Window_Menustrip instead.
  469.  
  470.     SEE ALSO
  471.     MUIA_Window_Menustrip
  472. Window.mui/MUIA_Window_MenuAction
  473.  
  474.     NAME
  475.     MUIA_Window_MenuAction -- (V8 ) [ISG], ULONG
  476.  
  477.     FUNCTION
  478.     Whenever a menu item is selected, this attribute will be
  479.     set to the corresponding UserData field of the gadtools
  480.     NewMenu structure. This allows reacting on menu items
  481.     via broadcasting.
  482.  
  483.     SEE ALSO
  484.     MUIA_Window_Menu
  485. Window.mui/MUIA_Window_Menustrip
  486.  
  487.     NAME
  488.     MUIA_Window_Menustrip -- (V8 ) [I.G], Object *
  489.  
  490.     FUNCTION
  491.     Specify a menu strip object for this window. The object
  492.     is treated as a child of the window and will be disposed
  493.     when the window is disposed.
  494.  
  495.     Menustrip objects defined for a window will override an
  496.     applications Menustrip object.
  497.  
  498.     MUIA_Window_Menustrip replaces the old and obsolete
  499.     MUIA_Window_Menu tag.
  500.  
  501.     Usually, you will create the menu object with MUI's builtin
  502.     object library from a gadtools NewMenu structure, but its
  503.     also OK to define the menu tree "by hand" using the
  504.     Family class.
  505.  
  506.     If you have a global menu for all your applications windows
  507.     but you want some windows to have no menu, use the
  508.     MUIA_Window_NoMenus tag.
  509.  
  510.     SEE ALSO
  511.     MUIA_Window_NoMenus
  512. Window.mui/MUIA_Window_MouseObject
  513.  
  514.     NAME
  515.     MUIA_Window_MouseObject -- (V10) [..G], Object *
  516.  
  517.     FUNCTION
  518.     When MUIA_Window_NeedsMouseObject is enabled for this window,
  519.     you can setup notificationns on MUIA_Window_MouseObject to
  520.     find out on which object the mouse pointer is located.
  521.  
  522.     SEE ALSO
  523.     MUIA_Window_NeedsMouseObject
  524. Window.mui/MUIA_Window_NeedsMouseObject
  525.  
  526.     NAME
  527.     MUIA_Window_NeedsMouseObject -- (V10) [I..], BOOL
  528.  
  529.     FUNCTION
  530.     If you want to react on changes of the MUIA_Window_MouseObject
  531.     attribute, you have to set this to TRUE when creating your
  532.     window.
  533.  
  534.     SEE ALSO
  535.     MUIA_Window_MouseObject
  536. Window.mui/MUIA_Window_NoMenus
  537.  
  538.     NAME
  539.     MUIA_Window_NoMenus -- (V4 ) [IS.], BOOL
  540.  
  541.     FUNCTION
  542.     Temporarily disable the menu strip of a window.
  543.  
  544.     SEE ALSO
  545.     MUIA_Window_Menu
  546. Window.mui/MUIA_Window_Open
  547.  
  548.     NAME
  549.     MUIA_Window_Open -- (V4 ) [.SG], BOOL
  550.  
  551.     FUNCTION
  552.     This little attribute can be used to open and close
  553.     a window. When opening a window, MUI does lots of
  554.     stuff to calculate sizes and positions of all
  555.     gadgets. Minimum and maximum window sizes will be
  556.     adjusted automatically.
  557.  
  558.     When the minimum size of a window is too big to fit
  559.     on the screen, MUI tries to reduce font sizes and
  560.     does a new calculation. You should always design
  561.     your windows to fit on a 640*200 screen with
  562.     all fonts set to topaz/8.
  563.  
  564.     When a window is closed (and you specified a
  565.     MUIA_Window_ID), MUI remembers its position
  566.     and size and uses these values during the next
  567.     opening.
  568.  
  569.     After setting MUIA_Window_Open to TRUE, you should
  570.     test if MUI was able to open the window by getting
  571.     the attribute again. If you don't and if this was
  572.     the only window of your application, the user won't
  573.     be able to do any input and your application will
  574.     seem to hang.
  575.  
  576.     EXAMPLE
  577.     set(window,MUIA_Window_Open,TRUE);
  578.     get(window,MUIA_Window_Open,&open);
  579.     if (!open)
  580.     {
  581.        MUI_Request(app,0,0,0,"Ok","Failed to open window.");
  582.        exit(20);
  583.     }
  584.  
  585.     SEE ALSO
  586.     MUIA_Window_RootObject
  587. Window.mui/MUIA_Window_PublicScreen
  588.  
  589.     NAME
  590.     MUIA_Window_PublicScreen -- (V6 ) [ISG], STRPTR
  591.  
  592.     FUNCTION
  593.     Force the window to appear on the public screen who's name
  594.     is specified by this attribute. This tag overrides the
  595.     user preferences setting and is overridden by
  596.     MUIA_Window_Screen.
  597.  
  598.     Please use this tag sparely, overriding user prefs is
  599.     not a good idea!
  600.  
  601.     SEE ALSO
  602.     MUIA_Window_Screen
  603. Window.mui/MUIA_Window_RefWindow
  604.  
  605.     NAME
  606.     MUIA_Window_RefWindow -- (V4 ) [IS.], Object *
  607.  
  608.     FUNCTION
  609.     Setting MUIA_Window_RefWindow to another MUI window
  610.     object will make the left and top position relative
  611.     to this reference window. Using
  612.     MUIA_Window_LeftEdge, MUIV_Window_LeftEdge_Centered or
  613.     MUIA_Window_TopEdge, MUIV_Window_TopEdge_Centered tag,
  614.     you can easily open one window within another.
  615.  
  616.     Note that if your window has an id, the window will
  617.     remember its last position and reopen there. Thus,
  618.     this tag is only useful if you omit MUIA_Window_ID,
  619.     maybe for some small requester windows.
  620.  
  621.     SEE ALSO
  622.     MUIA_Window_ID, MUIA_Window_LeftEdge
  623. Window.mui/MUIA_Window_RootObject
  624.  
  625.     NAME
  626.     MUIA_Window_RootObject -- (V4 ) [ISG], Object *
  627.  
  628.     FUNCTION
  629.     This is a pointer to a MUI object and defines the
  630.     contents of your window. Usually, this root object
  631.     will be of class MUIC_Group since you surely want to
  632.     have more than one gadget.
  633.  
  634.     The root object is treated as child of a window
  635.     and will be disposed when the window is disposed.
  636.     Note that windows can only have one child.
  637.  
  638.     NOTES
  639.     Although you may create a window without root object,
  640.     you have to set one before the window is openend!
  641.  
  642.     You can *only* use MUIA_Window_RootObject in a SetAttrs()
  643.     call if your window is not open yet!
  644.  
  645.     EXAMPLE
  646.     win = WindowObject, MUIA_Window_RootObject,
  647.        VGroup,
  648.           Child, ...,
  649.           Child, ...,
  650.           End,
  651.        End;
  652.  
  653.     SEE ALSO
  654.     MUIA_Window_Open
  655. Window.mui/MUIA_Window_Screen
  656.  
  657.     NAME
  658.     MUIA_Window_Screen -- (V4 ) [ISG], struct Screen *
  659.  
  660.     FUNCTION
  661.     You can get a pointer to the parent screen of a window by 
  662.     getting this attribute. The result will be NULL when the
  663.     window is currently closed.
  664.  
  665.     Specifying MUIA_Window_Screen at object creation time or
  666.     with a SetAttrs() call allows you to explicitly tell MUI
  667.     on which screen the window should be opened. You normally
  668.     won't need this feature and leave the decision about
  669.     screens to the users preferences setting.
  670.  
  671.     SEE ALSO
  672.     MUIA_Window_PublicScreen, MUIA_Window_Window
  673. Window.mui/MUIA_Window_ScreenTitle
  674.  
  675.     NAME
  676.     MUIA_Window_ScreenTitle -- (V5 ) [ISG], STRPTR
  677.  
  678.     FUNCTION
  679.     This text will appear in the screens title bar
  680.     when the window is active.
  681.  
  682.     SEE ALSO
  683.     MUIA_Window_Title
  684. Window.mui/MUIA_Window_SizeGadget
  685.  
  686.     NAME
  687.     MUIA_Window_SizeGadget -- (V4 ) [I..], BOOL
  688.  
  689.     FUNCTION
  690.     Tell MUI if you want a sizing gadget for this window.
  691.     Usually you won't need this attribute since MUI
  692.     will automatically disable the sizing gadget when
  693.     your window is not sizeable because of your gadget
  694.     layout.
  695. Window.mui/MUIA_Window_SizeRight
  696.  
  697.     NAME
  698.     MUIA_Window_SizeRight -- (V4 ) [I..], BOOL
  699.  
  700.     FUNCTION
  701.     When set to TRUE, the size gadget will reside
  702.     in the right window border.
  703. Window.mui/MUIA_Window_Sleep
  704.  
  705.     NAME
  706.     MUIA_Window_Sleep -- (V4 ) [.SG], BOOL
  707.  
  708.     FUNCTION
  709.     This attribute can be used to put a window to sleep.
  710.     The window gets disabled and a busy pointer appears.
  711.  
  712.     The attribute contains a nesting count, if you tell
  713.     your window to sleep twice, you will have to tell
  714.     it to wake up twice too.
  715.  
  716.     A sleeping window cannot be resized.
  717.  
  718.     SEE ALSO
  719.     MUIA_Application_Sleep
  720. Window.mui/MUIA_Window_Title
  721.  
  722.     NAME
  723.     MUIA_Window_Title -- (V4 ) [ISG], STRPTR
  724.  
  725.     FUNCTION
  726.     Specify the title of a window.
  727.  
  728.     SEE ALSO
  729.     MUIA_Window_ScreenTitle
  730. Window.mui/MUIA_Window_TopEdge
  731.  
  732.     NAME
  733.     MUIA_Window_TopEdge -- (V4 ) [I.G], LONG
  734.  
  735.     SPECIAL INPUTS
  736.     MUIV_Window_TopEdge_Centered
  737.     MUIV_Window_TopEdge_Moused
  738.     MUIV_Window_TopEdge_Delta(p)
  739.  
  740.     FUNCTION
  741.     Specify the top edge of a window. Usually, you shouldn't
  742.     define a pixel value here but instead use one of the
  743.     following macros:
  744.  
  745.     MUIV_Window_TopEdge_Centered:
  746.        window appears centered on the visible area of screen.
  747.  
  748.     MUIV_Window_TopEdge_Moused
  749.        window appears centered under the mouse pointer.
  750.  
  751.     MUIV_Window_TopEdge_Delta(p)
  752.        window appears p pixels below the screens title bar.
  753.  
  754.     Default for this tag is MUIV_Window_TopEdge_Centered.
  755.  
  756.     As long as your window has a window id (MUIA_Window_ID),
  757.     choosing a position is not that important. MUI will always
  758.     remember a windows last position and size and these
  759.     values will simply override your settings. Positioning
  760.     and sizing should be completely under user control,
  761.     a programmer doesn't need to worry about it.
  762.  
  763.     SEE ALSO
  764.     MUIA_Window_LeftEdge, MUIA_Window_ID
  765. Window.mui/MUIA_Window_UseBottomBorderScroller
  766.  
  767.     NAME
  768.     MUIA_Window_UseBottomBorderScroller -- (V13) [IS.], BOOL
  769.  
  770.     FUNCTION
  771.     If set to TRUE, the window will feature a scrollbar in its
  772.     bottom border. You must set this for the window object if
  773.     any children are going to use this window border scroller,
  774.     e.g. prop gadgets with the MUIA_Prop_UseWinBorder attribute.
  775.  
  776.     NOTES
  777.     Obviously, scroll gadgets in window borders wont look good
  778.     with borderless or non-resizable windows.
  779.  
  780.     SEE ALSO
  781.     MUIA_Window_UseLeftBorderScroller, 
  782.     MUIA_Window_UseRightBorderScroller
  783.     Prop.mui/MUIA_Prop_UseWinBorder,
  784.     Scrollgroup.mui/MUIA_Scrollgroup_UseWinBorder
  785. Window.mui/MUIA_Window_UseLeftBorderScroller
  786.  
  787.     NAME
  788.     MUIA_Window_UseLeftBorderScroller -- (V13) [IS.], BOOL
  789.  
  790.     FUNCTION
  791.     If set to TRUE, the window will feature a scrollbar in its
  792.     left border. You must set this for the window object if
  793.     any children are going to use this window border scroller,
  794.     e.g. prop gadgets with the MUIA_Prop_UseWinBorder attribute.
  795.  
  796.     NOTES
  797.     Obviously, scroll gadgets in window borders wont look good
  798.     with borderless or non-resizable windows.
  799.  
  800.     SEE ALSO
  801.     MUIA_Window_UseBottomBorderScroller,
  802.     MUIA_Window_UseRightBorderScroller
  803.     Prop.mui/MUIA_Prop_UseWinBorder,
  804.     Scrollgroup.mui/MUIA_Scrollgroup_UseWinBorder
  805. Window.mui/MUIA_Window_UseRightBorderScroller
  806.  
  807.     NAME
  808.     MUIA_Window_UseRightBorderScroller -- (V13) [IS.], BOOL
  809.  
  810.     FUNCTION
  811.     If set to TRUE, the window will feature a scrollbar in its
  812.     right border. You must set this for the window object if
  813.     any children are going to use this window border scroller,
  814.     e.g. prop gadgets with the MUIA_Prop_UseWinBorder attribute.
  815.  
  816.     NOTES
  817.     Obviously, scroll gadgets in window borders wont look good
  818.     with borderless or non-resizable windows.
  819.  
  820.     SEE ALSO
  821.     MUIA_Window_UseLeftBorderScroller,
  822.     MUIA_Window_UseBottomBorderScroller
  823.     Prop.mui/MUIA_Prop_UseWinBorder,
  824.     Scrollgroup.mui/MUIA_Scrollgroup_UseWinBorder
  825. Window.mui/MUIA_Window_Width
  826.  
  827.     NAME
  828.     MUIA_Window_Width -- (V4 ) [I.G], LONG
  829.  
  830.     SPECIAL INPUTS
  831.     MUIV_Window_Width_MinMax(p)
  832.     MUIV_Window_Width_Visible(p)
  833.     MUIV_Window_Width_Screen(p)
  834.     MUIV_Window_Width_Scaled
  835.     MUIV_Window_Width_Default
  836.  
  837.     FUNCTION
  838.     Specify the width of a window. Usually, you won't give
  839.     a pixel value here but instead use one of the following
  840.     magic macros:
  841.  
  842.     MUIV_Window_Width_Default:
  843.        calculated from objects default sizes.
  844.  
  845.     MUIV_Window_Width_MinMax(0..100):
  846.        somewhere between the minimum width (0) and the
  847.        maximum width (100) of your window.
  848.  
  849.     MUIV_Window_Width_Visible(1..100):
  850.        percentage of the screens visible width.
  851.  
  852.     MUIV_Window_Width_Screen(1..100):
  853.        percentage of the screens total width.
  854.  
  855.     MUIV_Window_Width_Scaled:
  856.        width will be adjusted so that
  857.        width : height == minimum width : minimum height.
  858.        Note that a windows width and height may not
  859.        both be scaled.
  860.  
  861.     Default for this tag is MUIV_Window_Width_Default.
  862.  
  863.     As long as your window has a window id (MUIA_Window_ID),
  864.     choosing a size is not that important. MUI will always
  865.     remember a windows last position and size and these
  866.     values will simply override your settings. Positioning
  867.     and sizing should be completely under user control,
  868.     a programmer doesn't need to worry about it.
  869.  
  870.     SEE ALSO
  871.     MUIA_Window_Height, MUIA_Window_ID
  872. Window.mui/MUIA_Window_Window
  873.  
  874.     NAME
  875.     MUIA_Window_Window -- (V4 ) [..G], struct Window *
  876.  
  877.     FUNCTION
  878.     When your window is open, you can obtain a pointer
  879.     to the intuition Window structure with this tag
  880.     and use it e.g. in an asl.library requester call.
  881.  
  882.     Since the user can close your window any time
  883.     (e.g. iconification), you must be prepared to
  884.     receive a NULL pointer as result.
  885.  
  886.     SEE ALSO
  887.     MUIA_Window_Screen
  888. Window.mui/MUIM_Window_AddEventHandler
  889.  
  890.     NAME
  891.     MUIM_Window_AddEventHandler (V16)
  892.  
  893.     SYNOPSIS
  894.     DoMethod(obj,MUIM_Window_AddEventHandler,struct MUI_EventHandlerNode *ehnode);
  895.  
  896.     FUNCTION
  897.     Event handlers introduced in muimaster.library V16 offer a
  898.     new way for custom classes to receive user input. They work
  899.     a little like the previously introduced input handlers
  900.     (MUIM_Application_AddInputHandler). You fill out a struct
  901.     MUI_EventHandlerNode (preferably located somewhere in the
  902.     instance data of your custom class) with the type of events
  903.     you wish to receive and then call MUIM_Window_AddEventHandler
  904.     to add your node to a windows event handler queue.
  905.  
  906.     Whenever an input event arrives, MUIs window class iterates
  907.     through the list of event handlers. The class of the input
  908.     event is matched against the event handlers class field and
  909.     in case of a match, the method MUIM_HandleEvent is invoked on
  910.     the specified object.
  911.  
  912.     Each event handler may decide to "eat" the input event, this
  913.     means window class will abort iterating the handler queue
  914.     after calling this handler.
  915.  
  916.     MUI follows certain priority rules when iterating through
  917.     the handler queue of a window. If there are handler entries
  918.     for the active object (MUIA_Window_ActiveObject) or for the
  919.     default object (MUIA_Window_DefaultObject), their nodes are
  920.     checked before all other nodes. Active objects are checked
  921.     before default objects. If there was no active and no
  922.     default object or if none of them ate the event, the rest
  923.     of the handler queue is checked according to their
  924.     ehn_Priority field.
  925.  
  926.     A good place to add/remove event handlers is the
  927.     MUIM_Setup/MUIM_Cleanup method pair of your custom class.
  928.  
  929.     If you wish to change certain fields (e.g. ehn_Events)
  930.     in an active handler (one that is currently added to a
  931.     windows), you must deactivate (remove) the handler, make 
  932.     your changes and then add it again. Do not change fields
  933.     of an active handler without removing it first!
  934.  
  935.     INPUTS
  936.     Pointer to an initialized struct MUI_EventHandler node:
  937.  
  938.     ehn_Priority - event handlers are inserted according to their
  939.                    priority. 0 is fine in almost all cases.
  940.  
  941.     ehn_Flags    - no flags are defined yet. Always use 0 here!
  942.  
  943.     ehn_Events   - Exclusive OR of all IDCMP_* flags you want this
  944.                    handler to react on.
  945.  
  946.     ehn_Object   - insert a pointer to yourself here.
  947.  
  948.     ehn_Class    - if you point this to your class, MUI will invoke
  949.                    MUIM_HandleEvent with CoerceMethod(ehn_Class,...)
  950.                    instead as with DoMethod(obj,...). This will bypass
  951.                    any subclasses you might have and directly hand
  952.                    the input event to the dispatcher. If you dont
  953.                    set ehn_Class, MUIM_HandleEvent is sent like any
  954.                    other method to the true class of your object.
  955.  
  956.                    Since every class should add a handler itself
  957.                    if it needs some input, MUIM_HandleEvent methods
  958.                    are different from other MUI methods which usually
  959.                    travel from class to class in an objects class
  960.                    tree. MUIM_HandleEvent is more treated like a
  961.                    hook function instead of a method: in almost all
  962.                    cases you will want it to be passed directly to
  963.                    a specific class dispatcher (by setting ehn_Class).
  964.                    Also, this dispatcher will usually not pass the
  965.                    method to its super class but instead return
  966.                    directly.
  967.  
  968.     RESULT
  969.     MUIM_Window_AddEventHandler cannot fail, the result
  970.     value of the method is currently undefined.
  971.  
  972.     NOTES
  973.     Event handlers are more flexible and more efficient than the
  974.     pre-V16 functions MUI_RequestIDCMP() and MUI_RejectIDCMP().
  975.     Also, event handlers dont suffer from problems that arise if
  976.     more than one class of an object calls MUI_RequestIDCMP().
  977.     Though the old functions will remain working for
  978.     compatibility reasons, it's suggested that only event
  979.     handlers are used in new code.
  980.  
  981.     You must match each MUIM_Window_AddEventHandler with
  982.     exactly one MUIM_Window_RemEventHandler method.
  983.  
  984.     EXAMPLE
  985.     MUIM_Setup:
  986.        data->ehnode.ehn_Object = obj;
  987.        data->ehnode.ehn_Class  = cl;
  988.        data->ehnode.ehn_Events = IDCMP_MOUSEBUTTONS;
  989.        DoMethod(_win(obj),MUIM_Window_AddEventHandler,&data->ehnode);
  990.  
  991.     MUIM_Cleanup:
  992.        DoMethod(_win(obj),MUIM_Window_RemEventHandler,&data->ehnode);
  993.  
  994.     Changing the trigger events of an active handler:
  995.        DoMethod(_win(obj),MUIM_Window_RemEventHandler,&data->ehnode);
  996.        data->ehnode.ehn_Events |= IDCMP_MOUSEMOVE;
  997.        DoMethod(_win(obj),MUIM_Window_AddEventHandler,&data->ehnode);
  998.  
  999.     More examples can be found in the MUI demo source codes that
  1000.     deal with custom classes.
  1001.  
  1002.     SEE ALSO
  1003.     MUIM_Window_RemEventHandler, MUIM_HandleEvent
  1004. Window.mui/MUIM_Window_GetMenuCheck
  1005.  
  1006.     NAME
  1007.     MUIM_Window_GetMenuCheck (V4 ) (OBSOLETE)
  1008.  
  1009.     SYNOPSIS
  1010.     DoMethod(obj,MUIM_Window_GetMenuCheck,ULONG MenuID);
  1011.  
  1012.     FUNCTION
  1013.     Ask whether a checkmark menu item has its
  1014.     checkmark set or cleared.
  1015.  
  1016.     INPUTS
  1017.     MenuID - the value you wrote into the
  1018.                  UserData field of struct NewMenu.
  1019.  
  1020.     SEE ALSO
  1021.     MUIM_Window_SetMenuCheck, MUIA_Window_Menu
  1022. Window.mui/MUIM_Window_GetMenuState
  1023.  
  1024.     NAME
  1025.     MUIM_Window_GetMenuState (V4 ) (OBSOLETE)
  1026.  
  1027.     SYNOPSIS
  1028.     DoMethod(obj,MUIM_Window_GetMenuState,ULONG MenuID);
  1029.  
  1030.     FUNCTION
  1031.     Ask whether a menu item is enabled or disabled.
  1032.  
  1033.     INPUTS
  1034.     MenuID - the value you wrote into the
  1035.                  UserData field of struct NewMenu.
  1036.  
  1037.     SEE ALSO
  1038.     MUIM_Window_SetMenuState, MUIA_Window_Menu
  1039. Window.mui/MUIM_Window_RemEventHandler
  1040.  
  1041.     NAME
  1042.     MUIM_Window_RemEventHandler (V16)
  1043.  
  1044.     SYNOPSIS
  1045.     DoMethod(obj,MUIM_Window_RemEventHandler,struct MUI_EventHandlerNode *ehnode);
  1046.  
  1047.     FUNCTION
  1048.     Remove an event handler.
  1049.  
  1050.     RESULT
  1051.     MUIM_Window_RemEventHandler cannot fail, the result
  1052.     value of the method is currently undefined.
  1053.  
  1054.     INPUTS
  1055.     ehnode - event handler node structure you passed to
  1056.              MUIM_Window_AddEventHandler previously.
  1057.  
  1058.     NOTES
  1059.     Every call to MUIM_Window_AddEventHandler must be matched
  1060.     by exactly one call to MUIM_Window_RemEventHandler.
  1061.  
  1062.     SEE ALSO
  1063.     MUIM_Window_RemEventHandler, MUIM_HandleEvent
  1064. Window.mui/MUIM_Window_ScreenToBack
  1065.  
  1066.     NAME
  1067.     MUIM_Window_ScreenToBack (V4 )
  1068.  
  1069.     SYNOPSIS
  1070.     DoMethod(obj,MUIM_Window_ScreenToBack,);
  1071.  
  1072.     FUNCTION
  1073.     Put the window's screen to back. This command is
  1074.     only valid when the window is opened.
  1075.  
  1076.     SEE ALSO
  1077.     MUIM_Window_ScreenToFront, MUIM_Window_ToFront,
  1078.     MUIM_Window_ToBack
  1079. Window.mui/MUIM_Window_ScreenToFront
  1080.  
  1081.     NAME
  1082.     MUIM_Window_ScreenToFront (V4 )
  1083.  
  1084.     SYNOPSIS
  1085.     DoMethod(obj,MUIM_Window_ScreenToFront,);
  1086.  
  1087.     FUNCTION
  1088.     Put the window's screen to font. This command is
  1089.     only valid when the window is opened.
  1090.  
  1091.     SEE ALSO
  1092.     MUIM_Window_ScreenToBack, MUIM_Window_ToFront,
  1093.     MUIM_Window_ToBack
  1094. Window.mui/MUIM_Window_SetCycleChain
  1095.  
  1096.     NAME
  1097.     MUIM_Window_SetCycleChain (V4 ) (OBSOLETE)
  1098.  
  1099.     SYNOPSIS
  1100.     DoMethod(obj,MUIM_Window_SetCycleChain,Object *obj[1]);
  1101.  
  1102.     FUNCTION
  1103.     Set the cycle chain for a window. To make MUI's keyboard
  1104.     control work, you need to setup a chain of objects that
  1105.     should be activatable with the tab key. This can be
  1106.     any objects you wish, MUI supports complete keyboard
  1107.     handling even for sliders or listviews.
  1108.  
  1109.     If you forget to set a cycle chain because you
  1110.     are a mouse-man, you certainly will annoy some
  1111.     users of your application!
  1112.  
  1113.     INPUTS
  1114.     One or more objects, terminated with a NULL.
  1115.  
  1116.     EXAMPLE
  1117.     DoMethod(window,MUIM_Window_SetCycleChain,
  1118.        str1,str2,slide1,list,radio,cycle1,cycle2,NULL);
  1119.  
  1120.     SEE ALSO
  1121.     MUIA_Window_ActiveObject, Area.mui/MUIA_CycleChain
  1122. Window.mui/MUIM_Window_SetMenuCheck
  1123.  
  1124.     NAME
  1125.     MUIM_Window_SetMenuCheck (V4 ) (OBSOLETE)
  1126.  
  1127.     SYNOPSIS
  1128.     DoMethod(obj,MUIM_Window_SetMenuCheck,ULONG MenuID, LONG stat);
  1129.  
  1130.     FUNCTION
  1131.     Set or clear the checkmark of a menu item.
  1132.  
  1133.     INPUTS
  1134.     MenuID - the value you wrote into the
  1135.                  UserData field of struct NewMenu.
  1136.  
  1137.     set    - TRUE to set checkmark, FALSE to clear
  1138.  
  1139.     SEE ALSO
  1140.     MUIM_Window_GetMenuCheck, MUIA_Window_Menu,
  1141. Window.mui/MUIM_Window_SetMenuState
  1142.  
  1143.     NAME
  1144.     MUIM_Window_SetMenuState (V4 ) (OBSOLETE)
  1145.  
  1146.     SYNOPSIS
  1147.     DoMethod(obj,MUIM_Window_SetMenuState,ULONG MenuID, LONG stat);
  1148.  
  1149.     FUNCTION
  1150.     Enable or disable a menu item.
  1151.  
  1152.     INPUTS
  1153.     MenuID - the value you wrote into the
  1154.                  UserData field of struct NewMenu.
  1155.  
  1156.     set    - TRUE to enable item, FALSE to disable.
  1157.  
  1158.     SEE ALSO
  1159.     MUIM_Window_GetMenuState, MUIA_Window_Menu,
  1160. Window.mui/MUIM_Window_ToBack
  1161.  
  1162.     NAME
  1163.     MUIM_Window_ToBack (V4 )
  1164.  
  1165.     SYNOPSIS
  1166.     DoMethod(obj,MUIM_Window_ToBack,);
  1167.  
  1168.     FUNCTION
  1169.     Put the window to back. When the window is not currently open,
  1170.     this command does simply nothing.
  1171.  
  1172.     SEE ALSO
  1173.     MUIM_Window_ToFront, MUIM_Window_ScreenToFront,
  1174.     MUIM_Window_ScreenToBack
  1175. Window.mui/MUIM_Window_ToFront
  1176.  
  1177.     NAME
  1178.     MUIM_Window_ToFront (V4 )
  1179.  
  1180.     SYNOPSIS
  1181.     DoMethod(obj,MUIM_Window_ToFront,);
  1182.  
  1183.     FUNCTION
  1184.     Put the window to front. When the window is not currently open,
  1185.     this command does simply nothing.
  1186.  
  1187.     SEE ALSO
  1188.     MUIM_Window_ToBack, MUIM_Window_ScreenToFront,
  1189.     MUIM_Window_ScreenToBack
  1190.